package model

import (
	"time"

	"gorm.io/gorm"
)

// File 文件模型
type File struct {
	ID          uint           `gorm:"primarykey" json:"id"`
	Name        string         `gorm:"size:255;not null" json:"name"`      // 文件名
	DirectoryID uint           `gorm:"index;not null" json:"directory_id"` // 所属目录ID
	FilePath    string         `gorm:"size:512;not null" json:"file_path"` // 存储路径
	Size        int64          `json:"size"`                               // 文件大小(字节)
	Remark      string         `gorm:"size:500" json:"remark"`             // 文件备注
	IsPublic    bool           `gorm:"default:false" json:"is_public"`     // 是否公开
	CreatedAt   time.Time      `json:"created_at"`
	UpdatedAt   time.Time      `json:"updated_at"`
	DeletedAt   gorm.DeletedAt `gorm:"index" json:"-"`
	UserID      int            `gorm:"user_id" json:"-"`
	MD5         string         `gorm:"md5" json:"-"`
	// 关联关系
	Directory *Directory `gorm:"foreignKey:DirectoryID" json:"directory,omitempty"`
}
